/*
 * jScrollPane - v2.0.0beta12 - 2012-09-27
 * http://jscrollpane.kelvinluck.com/
 *
 * Copyright (c) 2010 Kelvin Luck
 * Dual licensed under the MIT or GPL licenses.
 */

/*
.jspHorizontalBar{background:none;height:13px;}
.jspPane{left:0;}
.jspTrack{background:#f00 left center repeat-x;}
.jspDrag{background:#fee;cursor:pointer;overflow:hidden;width:5px;}
.jspVerticalBar{background:none;width:5px;}
.jspArrow{background:none;}
.jspArrow.jspDisabled{background:none;}
.jspVerticalBar .jspArrow{height:0px;background:#609cc9;overflow:hidden;}
*/
(function(b, a, c) {
	b.fn.jScrollPane = function(e) {
		function d(D, O) {
			var ay, Q = this,
			Y, aj, v, al, T, Z, y, q, az, aE, au, i, I, h, j, aa, U, ap, X, t, A, aq, af, am, G, l, at, ax, x, av, aH, f, L, ai = true,
			P = true,
			aG = false,
			k = false,
			ao = D.clone(false, false).empty(),
			ac = b.fn.mwheelIntent ? "mwheelIntent.jsp": "mousewheel.jsp";
			aH = D.css("paddingTop") + " " + D.css("paddingRight") + " " + D.css("paddingBottom") + " " + D.css("paddingLeft");
			f = (parseInt(D.css("paddingLeft"), 10) || 0) + (parseInt(D.css("paddingRight"), 10) || 0);
			function ar(aQ) {
				var aL, aN, aM, aJ, aI, aP, aO = false,
				aK = false;
				ay = aQ;
				if (Y === c) {
					aI = D.scrollTop();
					aP = D.scrollLeft();
					D.css({
						overflow: "hidden",
						padding: 0
					});
					aj = D.innerWidth() + f;
					v = D.innerHeight();
					D.width(aj);
					Y = b('<div class="jspPane" />').css("padding", aH).append(D.children());
					al = b('<div class="jspContainer" />').css({
						width: aj + "px",
						height: v + "px"
					}).append(Y).appendTo(D)
				} else {
					D.css("width", "");
					aO = ay.stickToBottom && K();
					aK = ay.stickToRight && B();
					aJ = D.innerWidth() + f != aj || D.outerHeight() != v;
					if (aJ) {
						aj = D.innerWidth() + f;
						v = D.innerHeight();
						al.css({
							width: aj + "px",
							height: v + "px"
						})
					}
					if (!aJ && L == T && Y.outerHeight() == Z) {
						D.width(aj);
						return
					}
					L = T;
					Y.css("width", "");
					D.width(aj);
					al.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()
				}
				Y.css("overflow", "auto");
				if (aQ.contentWidth) {
					T = aQ.contentWidth
				} else {
					T = Y[0].scrollWidth
				}
				Z = Y[0].scrollHeight;
				Y.css("overflow", "");
				y = T / aj;
				q = Z / v;
				az = q > 1;
				aE = y > 1;
				if (! (aE || az)) {
					D.removeClass("jspScrollable");
					Y.css({
						top: 0,
						width: al.width() - f
					});
					n();
					E();
					R();
					w()
				} else {
					D.addClass("jspScrollable");
					aL = ay.maintainPosition && (I || aa);
					if (aL) {
						aN = aC();
						aM = aA()
					}
					aF();
					z();
					F();
					if (aL) {
						N(aK ? (T - aj) : aN, false);
						M(aO ? (Z - v) : aM, false)
					}
					J();
					ag();
					an();
					if (ay.enableKeyboardNavigation) {
						S()
					}
					if (ay.clickOnTrack) {
						p()
					}
					C();
					if (ay.hijackInternalLinks) {
						m()
					}
				}
				if (ay.autoReinitialise && !av) {
					av = setInterval(function() {
						ar(ay)
					},
					ay.autoReinitialiseDelay)
				} else {
					if (!ay.autoReinitialise && av) {
						clearInterval(av)
					}
				}
				aI && D.scrollTop(0) && M(aI, false);
				aP && D.scrollLeft(0) && N(aP, false);
				D.trigger("jsp-initialised", [aE || az])
			}
			function aF() {
				if (az) {
					al.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'), b('<div class="jspDragBottom" />'))), b('<div class="jspCap jspCapBottom" />')));
					U = al.find(">.jspVerticalBar");
					ap = U.find(">.jspTrack");
					au = ap.find(">.jspDrag");
					if (ay.showArrows) {
						aq = b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", aD(0, -1)).bind("click.jsp", aB);
						af = b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", aD(0, 1)).bind("click.jsp", aB);
						if (ay.arrowScrollOnHover) {
							aq.bind("mouseover.jsp", aD(0, -1, aq));
							af.bind("mouseover.jsp", aD(0, 1, af))
						}
						ak(ap, ay.verticalArrowPositions, aq, af)
					}
					t = v;
					al.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function() {
						t -= b(this).outerHeight()
					});
					au.hover(function() {
						au.addClass("jspHover")
					},
					function() {
						au.removeClass("jspHover")
					}).bind("mousedown.jsp",
					function(aI) {
						b("html").bind("dragstart.jsp selectstart.jsp", aB);
						au.addClass("jspActive");
						var s = aI.pageY - au.position().top;
						b("html").bind("mousemove.jsp",
						function(aJ) {
							V(aJ.pageY - s, false)
						}).bind("mouseup.jsp mouseleave.jsp", aw);
						return false
					});
					o()
				}
			}
			function o() {
				ap.height(t + "px");
				I = 0;
				X = ay.verticalGutter + ap.outerWidth();
				Y.width(aj - X - f);
				try {
					if (U.position().left === 0) {
						Y.css("margin-left", X + "px")
					}
				} catch(s) {}
			}
			function z() {
				if (aE) {
					al.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'), b('<div class="jspDragRight" />'))), b('<div class="jspCap jspCapRight" />')));
					am = al.find(">.jspHorizontalBar");
					G = am.find(">.jspTrack");
					h = G.find(">.jspDrag");
					if (ay.showArrows) {
						ax = b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", aD( - 1, 0)).bind("click.jsp", aB);
						x = b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", aD(1, 0)).bind("click.jsp", aB);
						if (ay.arrowScrollOnHover) {
							ax.bind("mouseover.jsp", aD( - 1, 0, ax));
							x.bind("mouseover.jsp", aD(1, 0, x))
						}
						ak(G, ay.horizontalArrowPositions, ax, x)
					}
					h.hover(function() {
						h.addClass("jspHover")
					},
					function() {
						h.removeClass("jspHover")
					}).bind("mousedown.jsp",
					function(aI) {
						b("html").bind("dragstart.jsp selectstart.jsp", aB);
						h.addClass("jspActive");
						var s = aI.pageX - h.position().left;
						b("html").bind("mousemove.jsp",
						function(aJ) {
							W(aJ.pageX - s, false)
						}).bind("mouseup.jsp mouseleave.jsp", aw);
						return false
					});
					l = al.innerWidth();
					ah()
				}
			}
			function ah() {
				al.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function() {
					l -= b(this).outerWidth()
				});
				G.width(l + "px");
				aa = 0
			}
			function F() {
				if (aE && az) {
					var aI = G.outerHeight(),
					s = ap.outerWidth();
					t -= aI;
					b(am).find(">.jspCap:visible,>.jspArrow").each(function() {
						l += b(this).outerWidth()
					});
					l -= s;
					v -= s;
					aj -= aI;
					G.parent().append(b('<div class="jspCorner" />').css("width", aI + "px"));
					o();
					ah()
				}
				if (aE) {
					Y.width((al.outerWidth() - f) + "px")
				}
				Z = Y.outerHeight();
				q = Z / v;
				if (aE) {
					at = Math.ceil(1 / y * l);
					if (at > ay.horizontalDragMaxWidth) {
						at = ay.horizontalDragMaxWidth
					} else {
						if (at < ay.horizontalDragMinWidth) {
							at = ay.horizontalDragMinWidth
						}
					}
					h.width(at + "px");
					j = l - at;
					ae(aa)
				}
				if (az) {
					A = Math.ceil(1 / q * t);
					if (A > ay.verticalDragMaxHeight) {
						A = ay.verticalDragMaxHeight
					} else {
						if (A < ay.verticalDragMinHeight) {
							A = ay.verticalDragMinHeight
						}
					}
					au.height(A + "px");
					i = t - A;
					ad(I)
				}
			}
			function ak(aJ, aL, aI, s) {
				var aN = "before",
				aK = "after",
				aM;
				if (aL == "os") {
					aL = /Mac/.test(navigator.platform) ? "after": "split"
				}
				if (aL == aN) {
					aK = aL
				} else {
					if (aL == aK) {
						aN = aL;
						aM = aI;
						aI = s;
						s = aM
					}
				}
				aJ[aN](aI)[aK](s)
			}
			function aD(aI, s, aJ) {
				return function() {
					H(aI, s, this, aJ);
					this.blur();
					return false
				}
			}
			function H(aL, aK, aO, aN) {
				aO = b(aO).addClass("jspActive");
				var aM, aJ, aI = true,
				s = function() {
					if (aL !== 0) {
						Q.scrollByX(aL * ay.arrowButtonSpeed)
					}
					if (aK !== 0) {
						Q.scrollByY(aK * ay.arrowButtonSpeed)
					}
					aJ = setTimeout(s, aI ? ay.initialDelay: ay.arrowRepeatFreq);
					aI = false
				};
				s();
				aM = aN ? "mouseout.jsp": "mouseup.jsp";
				aN = aN || b("html");
				aN.bind(aM,
				function() {
					aO.removeClass("jspActive");
					aJ && clearTimeout(aJ);
					aJ = null;
					aN.unbind(aM)
				})
			}
			function p() {
				w();
				if (az) {
					ap.bind("mousedown.jsp",
					function(aN) {
						if (aN.originalTarget === c || aN.originalTarget == aN.currentTarget) {
							var aL = b(this),
							aO = aL.offset(),
							aM = aN.pageY - aO.top - I,
							aJ,
							aI = true,
							s = function() {
								var aR = aL.offset(),
								aS = aN.pageY - aR.top - A / 2,
								aP = v * ay.scrollPagePercent,
								aQ = i * aP / (Z - v);
								if (aM < 0) {
									if (I - aQ > aS) {
										Q.scrollByY( - aP)
									} else {
										V(aS)
									}
								} else {
									if (aM > 0) {
										if (I + aQ < aS) {
											Q.scrollByY(aP)
										} else {
											V(aS)
										}
									} else {
										aK();
										return
									}
								}
								aJ = setTimeout(s, aI ? ay.initialDelay: ay.trackClickRepeatFreq);
								aI = false
							},
							aK = function() {
								aJ && clearTimeout(aJ);
								aJ = null;
								b(document).unbind("mouseup.jsp", aK)
							};
							s();
							b(document).bind("mouseup.jsp", aK);
							return false
						}
					})
				}
				if (aE) {
					G.bind("mousedown.jsp",
					function(aN) {
						if (aN.originalTarget === c || aN.originalTarget == aN.currentTarget) {
							var aL = b(this),
							aO = aL.offset(),
							aM = aN.pageX - aO.left - aa,
							aJ,
							aI = true,
							s = function() {
								var aR = aL.offset(),
								aS = aN.pageX - aR.left - at / 2,
								aP = aj * ay.scrollPagePercent,
								aQ = j * aP / (T - aj);
								if (aM < 0) {
									if (aa - aQ > aS) {
										Q.scrollByX( - aP)
									} else {
										W(aS)
									}
								} else {
									if (aM > 0) {
										if (aa + aQ < aS) {
											Q.scrollByX(aP)
										} else {
											W(aS)
										}
									} else {
										aK();
										return
									}
								}
								aJ = setTimeout(s, aI ? ay.initialDelay: ay.trackClickRepeatFreq);
								aI = false
							},
							aK = function() {
								aJ && clearTimeout(aJ);
								aJ = null;
								b(document).unbind("mouseup.jsp", aK)
							};
							s();
							b(document).bind("mouseup.jsp", aK);
							return false
						}
					})
				}
			}
			function w() {
				if (G) {
					G.unbind("mousedown.jsp")
				}
				if (ap) {
					ap.unbind("mousedown.jsp")
				}
			}
			function aw() {
				b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
				if (au) {
					au.removeClass("jspActive")
				}
				if (h) {
					h.removeClass("jspActive")
				}
			}
			function V(s, aI) {
				if (!az) {
					return
				}
				if (s < 0) {
					s = 0
				} else {
					if (s > i) {
						s = i
					}
				}
				if (aI === c) {
					aI = ay.animateScroll
				}
				if (aI) {
					Q.animate(au, "top", s, ad)
				} else {
					au.css("top", s);
					ad(s)
				}
			}
			function ad(aI) {
				if (aI === c) {
					aI = au.position().top
				}
				al.scrollTop(0);
				I = aI;
				var aL = I === 0,
				aJ = I == i,
				aK = aI / i,
				s = -aK * (Z - v);
				if (ai != aL || aG != aJ) {
					ai = aL;
					aG = aJ;
					D.trigger("jsp-arrow-change", [ai, aG, P, k])
				}
				u(aL, aJ);
				Y.css("top", s);
				D.trigger("jsp-scroll-y", [ - s, aL, aJ]).trigger("scroll")
			}
			function W(aI, s) {
				if (!aE) {
					return
				}
				if (aI < 0) {
					aI = 0
				} else {
					if (aI > j) {
						aI = j
					}
				}
				if (s === c) {
					s = ay.animateScroll
				}
				if (s) {
					Q.animate(h, "left", aI, ae)
				} else {
					h.css("left", aI);
					ae(aI)
				}
			}
			function ae(aI) {
				if (aI === c) {
					aI = h.position().left
				}
				al.scrollTop(0);
				aa = aI;
				var aL = aa === 0,
				aK = aa == j,
				aJ = aI / j,
				s = -aJ * (T - aj);
				if (P != aL || k != aK) {
					P = aL;
					k = aK;
					D.trigger("jsp-arrow-change", [ai, aG, P, k])
				}
				r(aL, aK);
				Y.css("left", s);
				D.trigger("jsp-scroll-x", [ - s, aL, aK]).trigger("scroll")
			}
			function u(aI, s) {
				if (ay.showArrows) {
					aq[aI ? "addClass": "removeClass"]("jspDisabled");
					af[s ? "addClass": "removeClass"]("jspDisabled")
				}
			}
			function r(aI, s) {
				if (ay.showArrows) {
					ax[aI ? "addClass": "removeClass"]("jspDisabled");
					x[s ? "addClass": "removeClass"]("jspDisabled")
				}
			}
			function M(s, aI) {
				var aJ = s / (Z - v);
				V(aJ * i, aI)
			}
			function N(aI, s) {
				var aJ = aI / (T - aj);
				W(aJ * j, s)
			}
			function ab(aV, aQ, aJ) {
				var aN, aK, aL, s = 0,
				aU = 0,
				aI, aP, aO, aS, aR, aT;
				try {
					aN = b(aV)
				} catch(aM) {
					return
				}
				aK = aN.outerHeight();
				aL = aN.outerWidth();
				al.scrollTop(0);
				al.scrollLeft(0);
				while (!aN.is(".jspPane")) {
					s += aN.position().top;
					aU += aN.position().left;
					aN = aN.offsetParent();
					if (/^body|html$/i.test(aN[0].nodeName)) {
						return
					}
				}
				aI = aA();
				aO = aI + v;
				if (s < aI || aQ) {
					aR = s - ay.verticalGutter
				} else {
					if (s + aK > aO) {
						aR = s - v + aK + ay.verticalGutter
					}
				}
				if (aR) {
					M(aR, aJ)
				}
				aP = aC();
				aS = aP + aj;
				if (aU < aP || aQ) {
					aT = aU - ay.horizontalGutter
				} else {
					if (aU + aL > aS) {
						aT = aU - aj + aL + ay.horizontalGutter
					}
				}
				if (aT) {
					N(aT, aJ)
				}
			}
			function aC() {
				return - Y.position().left
			}
			function aA() {
				return - Y.position().top
			}
			function K() {
				var s = Z - v;
				return (s > 20) && (s - aA() < 10)
			}
			function B() {
				var s = T - aj;
				return (s > 20) && (s - aC() < 10)
			}
			function ag() {
				al.unbind(ac).bind(ac,
				function(aL, aM, aK, aI) {
					var aJ = aa,
					s = I;
					Q.scrollBy(aK * ay.mouseWheelSpeed, -aI * ay.mouseWheelSpeed, false);
					return aJ == aa && s == I
				})
			}
			function n() {
				al.unbind(ac)
			}
			function aB() {
				return false
			}
			function J() {
				Y.find(":input,a").unbind("focus.jsp").bind("focus.jsp",
				function(s) {
					ab(s.target, false)
				})
			}
			function E() {
				Y.find(":input,a").unbind("focus.jsp")
			}
			function S() {
				var s, aI, aK = [];
				aE && aK.push(am[0]);
				az && aK.push(U[0]);
				Y.focus(function() {
					D.focus()
				});
				D.attr("tabindex", 0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp",
				function(aN) {
					if (aN.target !== this && !(aK.length && b(aN.target).closest(aK).length)) {
						return
					}
					var aM = aa,
					aL = I;
					switch (aN.keyCode) {
					case 40:
					case 38:
					case 34:
					case 32:
					case 33:
					case 39:
					case 37:
						s = aN.keyCode;
						aJ();
						break;
					case 35:
						M(Z - v);
						s = null;
						break;
					case 36:
						M(0);
						s = null;
						break
					}
					aI = aN.keyCode == s && aM != aa || aL != I;
					return ! aI
				}).bind("keypress.jsp",
				function(aL) {
					if (aL.keyCode == s) {
						aJ()
					}
					return ! aI
				});
				if (ay.hideFocus) {
					D.css("outline", "none");
					if ("hideFocus" in al[0]) {
						D.attr("hideFocus", true)
					}
				} else {
					D.css("outline", "");
					if ("hideFocus" in al[0]) {
						D.attr("hideFocus", false)
					}
				}
				function aJ() {
					var aM = aa,
					aL = I;
					switch (s) {
					case 40:
						Q.scrollByY(ay.keyboardSpeed, false);
						break;
					case 38:
						Q.scrollByY( - ay.keyboardSpeed, false);
						break;
					case 34:
					case 32:
						Q.scrollByY(v * ay.scrollPagePercent, false);
						break;
					case 33:
						Q.scrollByY( - v * ay.scrollPagePercent, false);
						break;
					case 39:
						Q.scrollByX(ay.keyboardSpeed, false);
						break;
					case 37:
						Q.scrollByX( - ay.keyboardSpeed, false);
						break
					}
					aI = aM != aa || aL != I;
					return aI
				}
			}
			function R() {
				D.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")
			}
			function C() {
				if (location.hash && location.hash.length > 1) {
					var aK, aI, aJ = escape(location.hash.substr(1));
					try {
						aK = b("#" + aJ + ', a[name="' + aJ + '"]')
					} catch(s) {
						return
					}
					if (aK.length && Y.find(aJ)) {
						if (al.scrollTop() === 0) {
							aI = setInterval(function() {
								if (al.scrollTop() > 0) {
									ab(aK, true);
									b(document).scrollTop(al.position().top);
									clearInterval(aI)
								}
							},
							50)
						} else {
							ab(aK, true);
							b(document).scrollTop(al.position().top)
						}
					}
				}
			}
			function m() {
				if (b(document.body).data("jspHijack")) {
					return
				}
				b(document.body).data("jspHijack", true);
				b(document.body).delegate("a[href*=#]", "click",
				function(s) {
					var aI = this.href.substr(0, this.href.indexOf("#")),
					aK = location.href,
					aO,
					aP,
					aJ,
					aM,
					aL,
					aN;
					if (location.href.indexOf("#") !== -1) {
						aK = location.href.substr(0, location.href.indexOf("#"))
					}
					if (aI !== aK) {
						return
					}
					aO = escape(this.href.substr(this.href.indexOf("#") + 1));
					aP;
					try {
						aP = b("#" + aO + ', a[name="' + aO + '"]')
					} catch(aQ) {
						return
					}
					if (!aP.length) {
						return
					}
					aJ = aP.closest(".jspScrollable");
					aM = aJ.data("jsp");
					aM.scrollToElement(aP, true);
					if (aJ[0].scrollIntoView) {
						aL = b(a).scrollTop();
						aN = aP.offset().top;
						if (aN < aL || aN > aL + b(a).height()) {
							aJ[0].scrollIntoView()
						}
					}
					s.preventDefault()
				})
			}
			function an() {
				var aJ, aI, aL, aK, aM, s = false;
				al.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp",
				function(aN) {
					var aO = aN.originalEvent.touches[0];
					aJ = aC();
					aI = aA();
					aL = aO.pageX;
					aK = aO.pageY;
					aM = false;
					s = true
				}).bind("touchmove.jsp",
				function(aQ) {
					if (!s) {
						return
					}
					var aP = aQ.originalEvent.touches[0],
					aO = aa,
					aN = I;
					Q.scrollTo(aJ + aL - aP.pageX, aI + aK - aP.pageY);
					aM = aM || Math.abs(aL - aP.pageX) > 5 || Math.abs(aK - aP.pageY) > 5;
					return aO == aa && aN == I
				}).bind("touchend.jsp",
				function(aN) {
					s = false
				}).bind("click.jsp-touchclick",
				function(aN) {
					if (aM) {
						aM = false;
						return false
					}
				})
			}
			function g() {
				var s = aA(),
				aI = aC();
				D.removeClass("jspScrollable").unbind(".jsp");
				D.replaceWith(ao.append(Y.children()));
				ao.scrollTop(s);
				ao.scrollLeft(aI);
				if (av) {
					clearInterval(av)
				}
			}
			b.extend(Q, {
				reinitialise: function(aI) {
					aI = b.extend({},
					ay, aI);
					ar(aI)
				},
				scrollToElement: function(aJ, aI, s) {
					ab(aJ, aI, s)
				},
				scrollTo: function(aJ, s, aI) {
					N(aJ, aI);
					M(s, aI)
				},
				scrollToX: function(aI, s) {
					N(aI, s)
				},
				scrollToY: function(s, aI) {
					M(s, aI)
				},
				scrollToPercentX: function(aI, s) {
					N(aI * (T - aj), s)
				},
				scrollToPercentY: function(aI, s) {
					M(aI * (Z - v), s)
				},
				scrollBy: function(aI, s, aJ) {
					Q.scrollByX(aI, aJ);
					Q.scrollByY(s, aJ)
				},
				scrollByX: function(s, aJ) {
					var aI = aC() + Math[s < 0 ? "floor": "ceil"](s),
					aK = aI / (T - aj);
					W(aK * j, aJ)
				},
				scrollByY: function(s, aJ) {
					var aI = aA() + Math[s < 0 ? "floor": "ceil"](s),
					aK = aI / (Z - v);
					V(aK * i, aJ)
				},
				positionDragX: function(s, aI) {
					W(s, aI)
				},
				positionDragY: function(aI, s) {
					V(aI, s)
				},
				animate: function(aI, aL, s, aK) {
					var aJ = {};
					aJ[aL] = s;
					aI.animate(aJ, {
						duration: ay.animateDuration,
						easing: ay.animateEase,
						queue: false,
						step: aK
					})
				},
				getContentPositionX: function() {
					return aC()
				},
				getContentPositionY: function() {
					return aA()
				},
				getContentWidth: function() {
					return T
				},
				getContentHeight: function() {
					return Z
				},
				getPercentScrolledX: function() {
					return aC() / (T - aj)
				},
				getPercentScrolledY: function() {
					return aA() / (Z - v)
				},
				getIsScrollableH: function() {
					return aE
				},
				getIsScrollableV: function() {
					return az
				},
				getContentPane: function() {
					return Y
				},
				scrollToBottom: function(s) {
					V(i, s)
				},
				hijackInternalLinks: b.noop,
				destroy: function() {
					g()
				}
			});
			ar(O)
		}
		e = b.extend({},
		b.fn.jScrollPane.defaults, e);
		b.each(["mouseWheelSpeed", "arrowButtonSpeed", "trackClickSpeed", "keyboardSpeed"],
		function() {
			e[this] = e[this] || e.speed
		});
		return this.each(function() {
			var f = b(this),
			g = f.data("jsp");
			if (g) {
				g.reinitialise(e)
			} else {
				b("script", f).filter('[type="text/javascript"],:not([type])').remove();
				g = new d(f, e);
				f.data("jsp", g)
			}
		})
	};
	b.fn.jScrollPane.defaults = {
		showArrows: false,
		maintainPosition: true,
		stickToBottom: false,
		stickToRight: false,
		clickOnTrack: true,
		autoReinitialise: false,
		autoReinitialiseDelay: 500,
		verticalDragMinHeight: 0,
		verticalDragMaxHeight: 99999,
		horizontalDragMinWidth: 0,
		horizontalDragMaxWidth: 99999,
		contentWidth: c,
		animateScroll: false,
		animateDuration: 300,
		animateEase: "linear",
		hijackInternalLinks: false,
		verticalGutter: 10,
		horizontalGutter: 10,
		mouseWheelSpeed: 0,
		arrowButtonSpeed: 0,
		arrowRepeatFreq: 50,
		arrowScrollOnHover: false,
		trackClickSpeed: 0,
		trackClickRepeatFreq: 70,
		verticalArrowPositions: "split",
		horizontalArrowPositions: "split",
		enableKeyboardNavigation: true,
		hideFocus: false,
		keyboardSpeed: 0,
		initialDelay: 300,
		speed: 30,
		scrollPagePercent: 0.8
	}
})(jQuery, this);